from __future__ import unicode_literals

from django.utils.translation import ugettext_lazy as _
from django.db import models

from django.contrib.auth.models import User


class Puntaje_Encuesta(models.Model):
    ''' Tabla para almacenar la evaluacion de cada participante
    '''
    user = models.ForeignKey(
        User,
        on_delete=models.CASCADE,
        verbose_name = _('Usuario')
    )

    punto = models.CharField(
        verbose_name = _('punto evaluado'),
        max_length = 500,
        default = "-",
    )

    puntuacion = models.IntegerField(
        verbose_name = _('puntuacion'),
        default = 0
    )

    def __str__(self):
        return str("id:"+str(self.id)+" ,usuario: "+self.user_id + \
                   " ,punto: "+self.punto+ \
                   " ,puntuacion:"+ str(self.puntuacion))

    def getDimension(self):
        ''' Devuelve la dimension a la que pertenece esta puntuacion
        '''
        return int(self.punto[0])

class Puntaje_Punto(models.Model):
    ''' Tabla para almacenar la puntuacion de cada punto de la encuesta
    '''
    punto = models.CharField(
        verbose_name= _('punto de la encuesta'),
        max_length = 500,
        default = '-',
    )

    valoraciones = models.IntegerField(
        verbose_name = _('numero de valoraciones'),
        default = 0,
    )

    sumatoria = models.IntegerField(
        verbose_name = _('sumatoria de valoraciones'),
        default = 0,
    )
    
    promedio = models.FloatField(
        verbose_name = _('promedio obtenido para este punto'),
        default = 0, 
    )
    
    def __str__(self):
        return str("id:" + str(self.id) + " ,punto: "+ self.punto + \
                   ", valoraciones: " + str(self.valoraciones) + \
                   ", sumatoria: " + str(self.sumatoria) + \
                   ", promedio: " + str(self.promedio))

    def actualizar(self, valoracion):
        ''' actualiza los valores de valoraciones, sumatoria y promedio para este punto'''
        if valoracion > 0:
            self.valoraciones += 1
            self.sumatoria += valoracion
            self.promedio = (self.sumatoria*5) / float(self.valoraciones*5)
            #self.promedio = (self.sumatoria) / (self.valoraciones)
    
  
      
